package com.xiaoyuanbang.user;

import com.xiaoyuanbang.user.filter.JwtFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 * springBoot2.0后配置拦截器需要extends 的 WebMvcConfigurerAdapter 已经过时，取而代之的是 WebMvcConfigurationSupport
 * WebMvcConfigurerAdapter 只是对 WebMvcCofigurer 的空实现，而WebMvcConfigurerSupport对WebMvcCofigurer的实现更全面，
 * 但是继承WebMvcConfigurerSupport之后SpringBoot的webMvc自动配置会失效，导致视图解析器无法解析并返回对应的视图，如果需要返回逻辑视图就继承WebMvcCofigurer
 *
 * WebMvcConfigurationSupport 在整个程序中只会生效一个，如果实现了WebMvcConfigurationSupport类，那么继承WebMvcConfigurer的类将不会生效
 *
 * WebMvcConfigurationSupport是重写默认配置，而WebMvcConfigurerAdapter是在默认配置的上面增加扩展
 在请求中发现当执行完毕查询后又回到了拦截器中，再次回到拦截器中时就得不到header中的tokenl了,是因为有静态资源访问导致的增加配置
 **/
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
    @Autowired
    private JwtFilter jwtFilter;

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(jwtFilter).addPathPatterns("/**").excludePathPatterns("/**/login");
    }
}
